home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 26 / AACD 26.iso / AACD / Programming / AllPlaton / Unsorted / The Revenge of the Monkey.AMOS / The Revenge of the Monkey.amosSourceCode < prev   
Encoding:
AMOS Source Code  |  1992-08-29  |  3.7 KB  |  107 lines

  1. Screen Open 0,320,200,16,Lowres
  2. Curs Off : Cls 0 : Flash Off : Paper 0 : Pen 1 : Hide 
  3. Double Buffer : Screen Swap 
  4. Autoback 0
  5. 'Load "Monkey.abk" 
  6. Get Sprite Palette 
  7. A$=" Let X=0 ; Let Y=100 ; Let R0=0 ; Let R1=1 ; Anim 0,(7,1) ; Jump Seta ; "
  8. A$=A$+"Seta:  P ; I R9>29 Jump Vnotfa ; "
  9. A$=A$+"Wback: Let Y=R9/2+Y ; Let R9=R9+1 ; "
  10. A$=A$+"       If J1 & 16 Jump Fire ; "
  11. A$=A$+"Kback: If J1 & 4 Jump Left ; "
  12. A$=A$+"       If J1 & 8 Jump Right ; "
  13. A$=A$+"       If R0=1 Jump Arigh ; "
  14. A$=A$+"       If R0=2 Jump Bleft ; "
  15. A$=A$+"Xback: If Y>RB Jump Ybottom ; "
  16. A$=A$+"       If J1 & 1 Jump Jump ; "
  17. A$=A$+"       If R7=1 Jump Pump ; "
  18. A$=A$+"Tback: If J1 & 2 Jump Udown"
  19. A$=A$+"       Jump Seta ; "
  20. A$=A$+"Right: If X>298 Jump Erran ; "
  21. A$=A$+"       Let X=X+2 ; "
  22. A$=A$+"       If R8=1 Jump Hrigh ; "
  23. A$=A$+"       If R0=1 Jump Xback ; "
  24. A$=A$+"       Anim 0,(1,5)(2,5)(3,5)(4,5)(5,5)(6,5) ; Let R0=1 ; Let R1=1 ; "
  25. A$=A$+"       Jump Xback ; "
  26. A$=A$+"Left:  If X<2 Jump Gfran ; "
  27. A$=A$+"       Let X=X-2 ; "
  28. A$=A$+"       If R8=1 Jump Ileft ; "
  29. A$=A$+"       If R0=2 Jump Xback ; "
  30. A$=A$+"       Anim 0,(11,5)(12,5)(13,5)(14,5)(15,5)(16,5) ; Let R0=2 ; Let R1=2 ; "
  31. A$=A$+"       Jump Xback ; "
  32. A$=A$+"Fire:  If RA>0 Jump Kback ; "
  33. A$=A$+"       If R1=1 Jump Crire ; "
  34. A$=A$+"       If R1=2 Jump Dlire ; "
  35. A$=A$+"Arigh: If R8=1 Jump Xback ; Anim 1,(8,8)(7,1) ; Move 10,0,5 ; Let R0=0 ; Jump Seta ;"
  36. A$=A$+"Bleft: If R8=1 Jump Xback ; Anim 1,(18,8)(17,1) ; Move -10,0,5 ; Let R0=0 ; Jump Seta ;"
  37. A$=A$+"Crire: Let RA=1 ; If R0>0 Jump Kback ; Anim 1,(9,11)(7,11) ; Jump Kback ;"
  38. A$=A$+"Dlire: Let RA=2 ; If R0>0 Jump Kback ; Anim 1,(19,11)(17,1) ; Jump Kback ; "
  39. A$=A$+"Erran: Let X=300 ; Anim 1,(7,1) ; Let R0=0 ; Jump Xback; "
  40. A$=A$+"Glran: Let X=0 ; Anim 1,(17,1) ; Let R0=0 ; Jump Xback ; "
  41. A$=A$+"Jump:  Let R7=1 ; If R8=1 Jump Seta ; Let R8=1 ; Let R9=0-RC ; Jump Seta ; "
  42. A$=A$+"Pump:  Let R9=R9+3 ; If R9>0 Jump Qnojum ; Jump Tback ; "
  43. A$=A$+"Qnojum:Let R7=0 ; Jump Tback ; "
  44. A$=A$+"Ybot:  Let R9=0-R9/4+1 ; Let R8=0 ; Let Y=RB ; Jump Xback ; "
  45. A$=A$+"Hrigh: Anim 1,(8,2)(7,1) ; Let R0=0 ; Let R1=1 ; Jump Xback ; "
  46. A$=A$+"Ileft: Anim 1,(18,2)(17,1) ; Let R0=0 ; Let R1=2 ; Jump Xback ; "
  47. A$=A$+"Udown: Let R9=R9+1 ; Jump Seta ; "
  48. A$=A$+"Vnofas:Let R9=29 ; Jump Wback ; "
  49. SHOT$="A: Let X=X+R0 ; P ; If X>320 Jump B ; "
  50. SHOT$=SHOT$+"    If X<-10 Jump B ; Jump A ; "
  51. SHOT$=SHOT$+"B:  Let Y=-10 ; C: P ; If Y>0 Jump A ; Jump C ; "
  52. SHOT=2 : SHOTS=6
  53. Dim SHOT(6)
  54. For A=16 To 31
  55.   Colour A,4095
  56. Next 
  57. For A=1 To SHOTS
  58.   Channel A To Bob A : Bob A,0,0,0
  59.   Amal A,SHOT$
  60. Next 
  61. Amreg(1)=100
  62. Amreg(2)=14 : LI=3 : AM=99
  63. Dim LE(21,20)
  64. Open In 1,"Level1.map"
  65.   For Y=0 To 15
  66.     For X=0 To 19
  67.       LE(X,Y)=Asc(Input$(1,1))
  68.     Next 
  69.     LE(X,Y)=LE(X-1,Y)
  70.   Next 
  71. Close 1
  72. For X=0 To 19
  73.   For Y=0 To 12
  74.     Ink LE(X,Y),0,0
  75.     Bar X*16,Y*16 To X*16+15,Y*16+15
  76.   Next 
  77. Next 
  78. Home : Print "LIVES:";LI
  79. Screen Copy Logic(0) To Physic(0)
  80. Home : Pen 3 : Print "LIVES:";LI;" ";
  81. Amal 1,A$
  82. Amal On 
  83. Wait Vbl 
  84. Do 
  85.   B=Amreg(0)
  86.   Y=Y Bob(1)
  87.   For A=2 To SHOTS
  88.     If Y Bob(A)<0 Then SHOT(A)=0 : If Timer>30 and B=3 Then Amreg(0)=0
  89.   Next 
  90.   If Fire(1)=0 Then Timer=31
  91.   If(B=1 or B=2) and AM>0 Then Dec AM : Gosub SHOT
  92.   X=Max(X Bob(1)/16,0) : Y=Max((Y+62)/16,0)
  93.   If LE(X,Y)<>0 or LE(X+1,Y)<>0 Then Amreg(1)=Y*16-48
  94.   If LE(X,Y)=0 and LE(X+1,Y)=0 Then Amreg(1)=200 : Amreg(1,8)=1
  95.   If Y=16 Then Gosub LIVELOST
  96.   Wait Vbl 
  97. Loop 
  98. SHOT: Amreg(0)=3 : Timer=0 : If Y<-19 Then Return 
  99.   If B=1 Then Bob SHOT,X Bob(1)+40,Y+20,22 : Amreg(SHOT,0)=7 Else Bob SHOT,X Bob(1)-27,Y+20,21 : Amreg(SHOT,0)=-7
  100.   SHOT(SHOT)=1 : Add SHOT,1,2 To SHOTS : Return 
  101. LIVELOST:
  102.   Dec LI
  103.   Screen Swap : Home : Pen 1 : Print "LIVES:";LI;" ";
  104.   Screen Swap : Home : Pen 3 : Print "LIVES:";LI;" ";
  105.   Boom : Amreg(1)=-48
  106.   If LI=0 Then End 
  107. Return